package edu.whu.powersoap;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Calendar;
import java.util.Locale;

import android.app.Activity;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.text.format.DateFormat;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
  
public class MyCameraActivity extends Activity {  
    /** Called when the activity is first created. */  
    public Intent intent ;
    private String number;
    private Context mContext;
    @Override  
    public void onCreate(Bundle savedInstanceState) {  

        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_camera);  
       	Bundle bundle = getIntent().getExtras(); 
    	number = bundle.getString("number");   	
    	mContext = MyCameraActivity.this;
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);  
        startActivityForResult(intent, 1); 
    }  
  
    
    @Override  
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
        // TODO Auto-generated method stub  
        super.onActivityResult(requestCode, resultCode, data);  
        if (resultCode == Activity.RESULT_OK) {  
            String sdStatus = Environment.getExternalStorageState();  
            if (!sdStatus.equals(Environment.MEDIA_MOUNTED)) { // 检测sd是否可用  
                Log.i("TestFile",  
                        "SD card is not avaiable/writeable right now.");  
                return;  
            }  
            String name = new DateFormat().format("yyyyMMdd_hhmmss",Calendar.getInstance(Locale.CHINA)) + ".jpg";     
            Toast.makeText(this, name, Toast.LENGTH_LONG).show();  
            Bundle bundle = data.getExtras();  
            Bitmap bitmap = (Bitmap) bundle.get("data");// 获取相机返回的数据，并转换为Bitmap图片格式  
          
            FileOutputStream b = null;  
           //???????????????????????????????为什么不能直接保存在系统相册位置呢？？？？？？？？？？？？  
            File file = new File("/sdcard/myImage/");  
            file.mkdirs();// 创建文件夹  
            String fileName = "/sdcard/myImage/"+name;  
            try {  
                b = new FileOutputStream(fileName);  
                bitmap.compress(Bitmap.CompressFormat.JPEG, 100, b);// 把数据写入文件  
            } catch (FileNotFoundException e) {  
                e.printStackTrace();  
            } finally {  
                try {  
                    b.flush();  
                    b.close();  
                } catch (IOException e) {  
                    e.printStackTrace();  
                }  
            }  
            
            ContentValues values = new ContentValues();	
            ContentResolver cr = mContext.getContentResolver();          
            Cursor c = cr.query(MarkProvider.CONTENT_URI, new String[] 
					{
					MarkProvider.VOLUMN_NUMBER + " as _id",
					MarkProvider.VOLUMN_PHOTO_PATH, 
					}, "number =?", new String[]{number}, null);
            c.moveToFirst();
			int id = c.getColumnIndex(MarkProvider.VOLUMN_PHOTO_PATH);
			String p_path = c.getString(id);
			c.close();
			String new_path = "";
			if(p_path==null){
				p_path = "";
				new_path = fileName;
			}else{
				new_path =  p_path+" ; " + fileName;
			}
			
			values.put(MarkProvider.VOLUMN_PHOTO_PATH, new_path);
			values.put(MarkProvider.VOLUMN_FLAG, "marked");
			cr.update(MarkProvider.CONTENT_URI, values, "number =?", new String[]{number});
			
			
          //  ((ImageView) findViewById(R.id.camera_preview)).setImageBitmap(bitmap);// 将图片显示在ImageView里
        MyCameraActivity.this.finish();
        }  
    }  
    
    
}  
